A wide variety of devices may include a local clock that maintains a time-of-day. Examples of devices that may have a local time-of-day clock include computer systems, test instruments, industrial control devices, environmental control devices, and home appliances.
A time synchronization protocol may be used to synchronize a local clock in a device. A time synchronization protocol may be one in which a device exchanges timing information with a reference time source via a communication link. The exchanged timing information may be used to determine a clock offset that indicates a relative time difference between a local clock and a reference time source. For example, the IEEE 1588 time synchronization protocol includes the exchange of timing packets via a communication link.
Asymmetric delays on a communication link may reduce the accuracy of time synchronization. In IEEE 1588 time synchronization, for example, a propagation delay experienced by a timing packet in one direction over an Ethernet cable may differ from a propagation delay experienced by a timing packet in the opposite direction over the Ethernet cable. Similar asymmetric delays may occur on fiber optic cables and wireless communication links. Unfortunately, a time synchronization protocol may base its clock offset calculations on an assumption that the delays on a communication link are symmetric and any asymmetry in the delays may reduce the accuracy of time synchronization.